package com.dys.methodology;

/**
 * @className: com.dys.methodology.MethodOverriding
 * @description: 方法重载
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/06/20 下午11:39
 */
public class MethodOverriding {

    /**
     * 方法重载：在同一个类中，方法名相同，形参列表不同的多个方法构成方法重载
     * 形参列表不同：1.个数不同 2.顺序不同 3.类型不同
     *
     * @param args
     */
    public static void main(String[] args) {
        // 10+20
        System.out.println(add(10, 20));
        // 20+40+80
        System.out.println(add(add(20, 40), 80));
        // 30+60+90+120
        System.out.println(add(add(30, 60), add(90, 120)));
        // 9.5+10.5
        System.out.println(add(9.5, 10.5));
    }

    // 定义一个方法，两个数相加
    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    // 定义一个方法，三个数相加
    public static int add(int num1, int num2, int num3) {
        return num1 + num2 + num3;
    }

    // 定义一个方法，四个数相加
    public static int add(int num1, int num2, int num3, int num4) {
        return num1 + num2 + num3 + num4;
    }

    // 定义一个方法，2个double类型的数相加
    public static double add(double num1, double num2) {
        return num1 + num2;
    }
}
